Live meeting object in a calendar view

ABSTRACT

A calendar view is rendered on a user interface (UI). A scheduled meeting in a time slot of the calendar view, initially without an interactive control to join the scheduled meeting. In response to determining that a start time for the scheduled meeting is within a threshold time, the representation of the scheduled meeting is converted to a live meeting object within the calendar view.

BACKGROUND

Some computing systems provide interactive and collaborativeenvironments that facilitate communication between two or moreparticipants. Such systems may include a calendaring program configuredto schedule and manage meetings and appointments. Although existingcalendaring programs provide many features for scheduling meetings,inefficient interaction with calendaring programs can be detrimental touser productivity and use of computing resources. When calendaringapplications do not optimize user engagement and information sharing,production loss and inefficiencies can result when a participant isunable to quickly and easily view meetings and interact with the meetingcontext. For example, some calendaring applications may require thatusers open calendar items and perform a number of menu-driven tasks tozoom into areas of interest. Thus, when a participant needs furtherdetail on a meeting, the participant must go to the date of the meeting,open the meeting, and click on a meeting link to find furtherinformation and to access interactive options. It is with respect tothese considerations and others that the disclosure made herein ispresented

SUMMARY

Many calendar applications present schedule information in a staticformat. Details of a calendar event may not be updated in a dynamic andreal-time manner, and pertinent details may not be readily availableunless the calendar event is opened or otherwise further activated. Bythe use of the technologies described herein, information for a calendarevent is presented in a dynamic format that allows for timely and usefulinformation to be rendered directly within the calendar view. Thedynamic view may include real-time updates as to the status of acalendar event as well as interactive capabilities provided directly ona representation of the calendar event within the calendar view.

In various embodiments, an existing calendar item for a meeting may beautomatically converted to a live meeting object within the calendarview. In an embodiment, an existing calendar item for a meeting may beupdated before a set start time of the meeting, to include and display a“join” control. The join control may be configured so that a user candirectly join the meeting from the calendar view without having to openthe details of the calendar item. While some collaborative e userinterfaces may provide a meeting “join” control, this capability istypically provided only when a calendar item is further engaged by theuser, such as opening the calendar item, opening and selecting a menuoption, or launching an application other than the calendaringapplication. In some cases, the user must select a detailed meeting viewwhich requires multiple clicks to open and access details of themeeting.

In various embodiments, the state of a calendar item may be dynamicallyupdated based on the context such as the current time and date. Forexample, a calendar item may initially describe the title of a meeting,but not display a “join” button prior to the start time of the meeting.Generally, when a plurality of calendar items are displayed, such as ina full day calendar view or a full week calendar view, such interactiveoptions are not typically rendered for meetings displayed within thefull day calendar view or full week calendar view. In an embodiment,when a threshold time is reached prior to the meeting start time, suchas fifteen minutes before the start time, the “join” control may beadded to the calendar item. The “join” control may be added while theuser interface is in the calendar view and without the need for anyspecific input from the user. Furthermore, the “join” control may berendered on the calendar item, or multiple calendar items, within acalendar view that may include a plurality of date ranges and calendaritems within those date ranges. The “join” control may be renderedduring the entire time that the meeting is live. Clicking on the “join”button may, for example, take user to a pre-join screen or launch anapplication to join the meeting.

In one embodiment, a calendar item may further provide an indicationthat a meeting is live. In addition to adding a “join” button, thecalendar item may provide a visual indication such as a change in colorto indicate that the meeting is live. The visual indication and addingof the “join” button may be in addition other notifications for themeeting that may be provided across other interfaces and form factorswhich have interfaces to the calendar item.

Once a meeting is live, additional information and controls may beprovided to enable further contextual awareness of the meeting. Forexample, icons may be rendered on the calendar item to indicate thenumber of participants who have joined the meeting. In one embodiment,an icon may be rendered for each participant who has joined the meeting.In another embodiment, the elapsed time for the meeting may be rendered,indicating how long the meeting has been live.

In some embodiments, an “RSVP” option may be rendered on the calendaritem. By responding to the “RSVP” option by clicking or otherwiseactivating the option, the user may directly accept or decline themeeting while in the calendar view. An indication may be provided to theorganizer of the meeting to indicate whether the user will attend themeeting.

In an embodiment, the calendar item may further provide indications asto the current content of the meeting. For example, if a presentation ordocument is being shared, a preview window may be rendered on thecalendar item. As another example, a video camera view can be renderedon the calendar item. By providing such information, participants whoplan to participate in a portion of a meeting may selectively join themeeting using the meeting preview to optimize the time spent in themeeting.

In an embodiment, a preview icon may be rendered, allowing the user topreview recent messages/conversations within the calendar item. In anembodiment, a chat icon may be rendered. When recent chat activity isavailable, the chat icon may provide have an indicator (e.g., red dot).By clicking on the chat icon, the user may be taken to a conversationpreview.

In an embodiment, a notes icon may be rendered, where the calendar itemmay indicate that new notes have been added to the meeting. The icon mayalso indicate recent notes activity by rending a red bubble or dot onthe icon. The notes may include those that were added by participants ofthe meeting via a collaboration platform that is being used tofacilitate the meeting.

In an embodiment, a whiteboard icon may be rendered, which may indicatethat a new whiteboard has been added to the meeting. The whiteboard iconmay indicate recent whiteboard activity by rendering a red bubble or doton the icon. The whiteboard may be a tool for allowing participants ofthe meeting to draw or write shared inputs via the collaborationplatform that is being used to facilitate the meeting.

In an embodiment, a recording icon may be rendered, which may indicatethat a recording is available for viewing. The recording icon mayindicate recent activity by rendering a red bubble or dot on the icon.The recording may include video and/or audio recordings captured by arecording tool that may be part of the collaboration platform that isbeing used to facilitate the meeting.

In an embodiment, a files icon may be rendered, which may indicate thata new file has been added to the meeting. The files icon may indicaterecent activity by rendering a red bubble or dot on the icon. The filesmay include those that were added or shared by participants of themeeting via the collaboration platform that is being used to facilitatethe meeting.

In an embodiment, a share icon may be rendered, which the user may clickor otherwise activate to forward/share the current meeting with otherparticipants or add to a meeting channel. The meeting may be shared orforwarded as a meeting object that can be received by invitedparticipants via email or other messaging systems.

In an embodiment, the calendar item may further provide interactiveoptions after the meeting has concluded. For example, the calendar itemmay provide an indication that a meeting has ended, such as a change incolor to indicate that the meeting is no longer live. Once a meeting hasended, additional information may be provided to enable furtherinteraction with the content of the meeting. For example, icons may berendered on the calendar item to indicate the participants whoparticipated in the meeting. In an embodiment, the calendar item mayfurther provide a way to view or listen to recent activity, such as aplayback of a recording of the meeting, access to chat transcripts, andto access the content that was shared at the meeting. For example, if apresentation or document was shared, options may be provided on thecalendar item to access the files or documents, contact the meetingparticipants, etc.

A dynamic calendar item as described herein may be referred to as ameeting object or an interactive calendar surface. The meeting object orinteractive calendar surface may facilitate a shared meeting andcommunication environment that improves collaboration and otheractivities. The data that may be provided on the interactive calendarsurface may include but is not limited to video, imagery, 3D models,office applications, captured environments/objects, annotations,presentation, shared locations, notes, expressions, or other sharedactivity.

In some embodiments, an additional interactive calendar surface layermay be implemented over the active interactive calendar surface that isviewable to the user and may be manipulated as an independent object.For example, the additional interactive calendar surface object may beindependently saved, forwarded to other users, modified, annotated,added as an object to other applications and files, and treated as arecipient of other files and objects. The meeting object may beaddressable, actionable, and searchable as a conversational object. Themeeting object can be edited, for example to condense or selecthighlights of the meeting, before sending out the object in the same ora different context.

Data from a number of resources can be utilized to providecontextually-aware information for calendar items in the calendar view.Such technologies can improve user interaction with a computing deviceby automatically generating and displaying timely and relevantinformation without requiring users to open a calendar event, conduct asearch, or manually access a number of resources. Among many benefitsprovided by the technologies described herein, a user's interaction witha device may be improved, which may reduce the number of inadvertentinputs, reduce the consumption of processing resources, and mitigate theuse of network resources. Other technical effects other than thosementioned herein can also be realized from implementations of thetechnologies disclosed herein. Existing systems for allowing users tomanually interact with calendar items typically require users to performa number of tasks. The user can spend a considerable amount of timesearching through available calendar items to find and change settings,invoke additional applications to perform functions that are not nativeto the calendar application, and to find content that is associated withthe scheduled activity. This can lead to extensive and unnecessaryconsumption of computing resources.

The examples described herein may be provided within the context ofcollaborative environments, e.g., scheduled calendar events, groupmeetings, live broadcasts, etc. For illustrative purposes, it can beappreciated that a computer managing a calendaring environment involvesany type of computer that can access a user's calendar data and manage acommunication session where two or more computers are sharing data. Forillustrative purposes, an “event” is a particular instance of acommunication session, which may have a start time, an end time, andother parameters for controlling how data is shared and displayed tousers participating in the communication session.

Features and technical benefits other than those explicitly describedabove will be apparent from a reading of the following DetailedDescription and a review of the associated drawings. This Summary isprovided to introduce a selection of concepts in a simplified form thatare further described below in the Detailed Description. This Summary isnot intended to identify key or essential features of the claimedsubject matter, nor is it intended to be used as an aid in determiningthe scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an example user interface illustrating aspects of acalendaring environment for the embodiments disclosed herein.

FIG. 2 illustrates an example display, according to one embodimentdisclosed herein.

FIG. 3 illustrates an example display, according to one embodimentdisclosed herein.

FIG. 4 illustrates an example display, according to one embodimentdisclosed herein.

FIG. 5 illustrates an example display, according to one embodimentdisclosed herein.

FIG. 6 illustrates an example display, according to one embodimentdisclosed herein.

FIG. 7 is an example user interface illustrating aspects of acalendaring environment for the embodiments disclosed herein;

FIG. 8 is an example user interface illustrating aspects of acalendaring environment for the embodiments disclosed herein;

FIG. 9 is a computing system diagram showing aspects of an illustrativeoperating environment for the technologies disclosed herein;

FIG. 10 is a computing system diagram showing aspects of an illustrativeoperating environment for the technologies disclosed herein;

FIG. 11 is a computing device diagram showing aspects of theconfiguration and operation of a device that can implement aspects ofthe disclosed technologies, according to one embodiment disclosedherein.

FIG. 12 is a computing system diagram showing aspects of an illustrativeoperating environment for the technologies disclosed herein;

FIG. 13 illustrates aspects of a routine, according to one embodimentdisclosed herein;

FIG. 14 illustrates aspects of a routine, according to one embodimentdisclosed herein;

FIG. 15 is a computing system diagram showing aspects of an illustrativeoperating environment for the technologies disclosed herein;

FIG. 16 is a computing device diagram showing aspects of theconfiguration and operation of a device that can implement aspects ofthe disclosed technologies, according to one embodiment disclosedherein.

DETAILED DESCRIPTION

The following Detailed Description describes an improved interface forviewing and interacting with calendar events that are rendered in arepresentation of a calendar. Various embodiments are disclosed thatenable productive discovery and management of past, present and futurecalendared activity for users. This can result in more efficient use ofcomputing resources such as processor cycles, memory, network bandwidth,and power, as compared to previous solutions relying upon inefficientinteraction with a rendered calendar environment and objects within therendered calendar environment. Technical benefits other than thosespecifically described herein might also be realized throughimplementations of the disclosed technologies.

Calendar objects are typically representations of scheduled events in acalendaring application that is configured to provide an electronicrepresentation of a calendar. The representation may include a calendarshowing dates and days of the week and a list of appointments. Thecalendaring application may be a local application designed forindividual use or may be a networked application that allows for thesharing of calendar information in an interactive and collaborativeenvironment. Examples of calendaring software include WINDOWS LIVECALENDAR, GOOGLE CALENDAR, or MICROSOFT OUTLOOK.

A scheduled and networked meeting represents one popular form ofelectronic collaboration that utilizes an interactive applicationprogram (e.g., CISCO WEBEX provided by CISCO SYSTEMS, Inc. of San Jose,Calif., GOTOMEETING provided by CITRIX SYSTEMS, INC. of Santa Clara,Calif., ZOOM provided by ZOOM VIDEO COMMUNICATIONS of San Jose, Calif.,GOOGLE HANGOUTS by ALPHABET INC. of Mountain View, Calif., SKYPE, andSKYPE FOR BUSINESS and TEAMS provided by MICROSOFT CORPORATION, ofRedmond, Wash.) to facilitate communication between two or moreparticipants. Participants of a communication session in a networkedmeeting are able to exchange live video, audio, and other types ofcontent to view, hear, and otherwise share information. Various types ofcomputing devices can be utilized to participate in networked meetingsincluding, but not limited to, smartphones, tablet computing devices,set-top boxes, smart televisions, video game systems, and AR, VR, and MRdevices.

Many calendaring applications present schedule information in a staticformat. Details of a calendar event may not be updated in a dynamic andreal-time manner and relevant calendar information not be readilyavailable unless the calendar event is opened or otherwise furtheractivated. Various embodiments are disclosed for implementing animproved interface for viewing and interacting with calendar objects ofa calendaring application. In one embodiment, an interactive calendarsurface is disclosed that is operable to facilitate a user's interactionwith the content of a calendar event as well as interaction with otherparticipants of the calendar event, all within a calendar view of thecalendaring application. The enabled user interactions may includeupdating meeting content, sharing of the meeting content, interactingwith other participants, and joining the meeting. By the use of thetechnologies described herein, information for a calendar event ispresented in a dynamic format that allows for timely and usefulinformation to be rendered directly within the calendar view. Thedynamic view may include real-time updates as to the status of acalendar event as well as interactive capabilities provided directly ona representation of the calendar event within the calendar view.

In some embodiments, the interactive calendar surface may automaticallyconvert an existing calendar item for a meeting to a live meeting objectwithin the calendar view. In an embodiment, illustrated in FIG. 1 is anexample calendar view 100 rendered on a user interface (UI), including acalendar item 110. The calendar view 100 may be indicative of one ormore calendar days, the calendar days comprising a time span including aplurality of time slots.

The calendar item 110 may be updated before a set start time of themeeting, to include and display a “join” control 130 within the calendarview. The join control 130 may be configured so that user can directlyjoin the meeting from the converted calendar view without having to openthe details of the calendar item. The join control 130 may have at leasta selectable region that is configured to indicate that the scheduledmeeting is to be joined. While some existing user interfaces provide a“join” button, this capability is typically provided when the calendaritem is further engaged by the user, such as opening the calendar item,opening and selecting a menu option, or otherwise further moving awayfrom the calendar view. In some cases, the user must select a detailedview which requires multiple clicks to open and access details of themeeting.

In various embodiments, the state of a calendar item may be dynamicallyupdated based on the context such as the current time and date.Contextual information may also be based on other information such asuser preferences, whether the organizer of the meeting has started themeeting, and other factors. In one embodiment, a calendar item mayprovide meeting title, date, time, and location, but may not initiallydisplay a “join” button prior to the start time of the meeting, prior toa time threshold, or other criteria. When a plurality of calendar itemsare displayed, such as in a full day calendar view or a full weekcalendar view, such interactive options are not typically rendered on acalendar item. In an embodiment, when a threshold time is reached priorto the meeting start time, such as fifteen minutes before the starttime, the state of the calendar meeting may be updated, and a “join”control may be added to the calendar item. The “join” control mayautomatically be added while the calendaring application is presentingin the calendar view and without the need for any specific input fromthe user. Furthermore, the “join” control may be rendered on thecalendar item, or multiple calendar items, within the calendar view thatmay include a plurality of date ranges and calendar items within thosedate ranges, without the user having to open the calendar item.

In one embodiment, the calendar item may further provide an indicationthat a meeting is live. In addition to adding a “join” button, in theexample illustrated in FIG. 1, the calendar item 110 may further providea visual indication such as a change in color to indicate that themeeting is live.

The visual indication and adding of the “join” button may be in additionother notifications for the meeting that may be provided across multipleinterfaces and form factors which have interfaces to the calendar item.In an embodiment, the “join” control may continue to be rendered duringthe entire time that the meeting is live.

In some embodiments, an “RSVP” option may be rendered on the calendaritem. By responding to the “RSVP” option by clicking or otherwiseactivating the option, the user may directly accept or decline themeeting while in the calendar view. An indication may be provided to theorganizer of the meeting to indicate whether the user will attend themeeting.

In some embodiments, once a meeting is live, additional information maybe provided to enable further contextual awareness of the meeting. Forexample, icons may be rendered on the calendar item to indicate thenumber of participants who have joined the meeting. In one embodiment,an icon may be rendered for each participant who has joined the meeting.

In some embodiments, the calendar item may further provide indicationsas to the content that is being discussed or presented at the meeting.In an embodiment, a dynamic calendar item as described herein may bereferred to as an interactive calendar surface. The interactive calendarsurface may facilitate a shared meeting and communication environmentthat improves collaboration and other activities. The data that may beprovided on the interactive calendar surface may include but is notlimited to video, imagery, 3D models, office applications, capturedenvironments/objects, annotations, presentation, shared locations,notes, expressions, or other shared activity.

The interactive calendar surface may facilitate interaction with sourcedata for content that is a part of the calendar event. For example, if apresentation or document is being shared, a preview window may berendered on the calendar item. As another example, a video camera viewcan be rendered on the meeting object. By providing such information,participants who are engaged in a portion of a longer meeting mayselectively join a meeting, using the meeting preview to optimize thetime spent in the meeting. This allows users to quickly have access tomeeting content rather than searching for the content as a separate taskand opening an application to view an image of the content. Theinteractive calendar surface thus provides a focused view of contentthat is contextually available to the group during the course of thecalendar event.

The meeting object may be opened to provide further details for theevent. In some embodiments, the meeting object may be sent to users whomay access the meeting by interacting with the object. For example, arecipient of the meeting object may be able to click on the meetingobject to join the meeting or to view details about the meeting.

In some embodiments, actions available to the meeting object orinteractive calendar surface may be dynamically updated based on thedetected activity in the room. For example, if a presentation is beingrendered on a display within the rendered environment, the interactivecalendar surface may be updated to include a thumbprint of the displayedpresentation.

Data from a number of resources can be utilized to providecontextually-aware information for calendar items. Such technologies canimprove user interaction with a computing device by automaticallygenerating and displaying timely and relevant information withoutrequiring users to open a calendar event, conduct a search, or manuallyaccess a number of resources. Among many benefits provided by thetechnologies described herein, a user's interaction with a device may beimproved, which may reduce the number of inadvertent inputs, reduce theconsumption of processing resources, and mitigate the use of networkresources. Other technical effects other than those mentioned herein canalso be realized from implementations of the technologies disclosedherein.

In some embodiments, the actions available on the interactive calendarsurface may be based on an assigned role for the user. For example, someusers may be assigned a meeting leader role and may be allowed to editcontent before the content is shared. Other users may have a participantrole or a group role and may be allowed to control their own settings orcollectively control settings for the group.

In an embodiment, the meeting object may further provide interactiveoptions after the meeting has concluded. For example, the meeting objectmay provide an indication that a meeting has ended, such as a change incolor to indicate that the meeting is no longer live. Once a meeting hasended, additional information may be provided to enable furtherinteraction with the content of the meeting. For example, icons may berendered on the calendar item to indicate the participants who havejoined the meeting. In an embodiment, the calendar item may furtherprovide a way to view or listen to recent activity, such as a playbackof a recording of the meeting, access to chat transcripts, and to accessthe content that was shared at the meeting. For example, if apresentation or document was shared, options may be provided on themeeting object to access the files or documents, contact the meetingparticipants, etc.

In some embodiments, the actions and features that are activated by theuser during an editing/viewing session may be recorded and may bereplayed by the user. In some embodiments, captured images of themeeting may be linked to a time window. For example, an image from themeeting that is selected for editing may be associated with a defaulttime window such as 30 seconds. The interactive calendar surface mayprovide a timeline tool to traverse the timeframe during which theactivity occurred and for which a recording is available. In this way,the user may view various times of the activity, from the perspective ofthe image, and further be provided various editing options over theavailable timeframes.

In some embodiments, an additional interactive calendar surface layermay be implemented over the active interactive calendar surface that isviewable to the user and may be manipulated as an independent object.For example, the additional interactive calendar surface object may beindependently saved, forwarded to other users, modified, annotated,added as an object to other applications and files, and treated as arecipient of other files and objects. The meeting object may beaddressable, actionable, and searchable as a conversational object. Themeeting object can be edited, for example to condense or selecthighlights of the meeting, before sending out the meeting in the same ora different context.

Turning now to the figures (which might be referred to herein as a“FIG.” or “FIGS.”), additional details will be provided regarding animproved calendar interface disclosed herein with reference to theaccompanying drawings. The figures show, by way of illustration,specific configurations or examples. Like numerals represent like orsimilar elements throughout the FIGS. In the FIGS., the left-mostdigit(s) of a reference number generally identifies the figure in whichthe reference number first appears. References made to individual itemsof a plurality of items can use a reference number with another numberincluded within a parenthetical (and/or a letter without aparenthetical) to refer to each individual item. Generic references tothe items might use the specific reference number without the sequenceof letters. The drawings are not drawn to scale.

It should be appreciated that the above-described subject matter may beimplemented as a computer-controlled apparatus, a computer process, acomputing system, or as an article of manufacture such as acomputer-readable storage medium. These and various other features willbe apparent from a reading of the following Detailed Description and areview of the associated drawings. Furthermore, the claimed subjectmatter is not limited to implementations that solve any or alldisadvantages noted in any part of this disclosure.

It should be appreciated that various aspects of the subject matterdescribed briefly above and in further detail below can be implementedas a hardware device, a computer-implemented method, acomputer-controlled apparatus or device, a computing system, or anarticle of manufacture, such as a computer storage medium. While thesubject matter described herein is presented in the general context ofprogram modules that execute on one or more computing devices, thoseskilled in the art will recognize that other implementations can beperformed in combination with other types of program modules. Generally,program modules include routines, programs, components, data structures,and other types of structures that perform particular tasks or implementparticular abstract data types.

Those skilled in the art will also appreciate that aspects of thesubject matter described herein can be practiced on or in conjunctionwith other computer system configurations beyond those specificallydescribed herein, including multiprocessor systems, microprocessor-basedor programmable consumer electronics, AR, VR, and MR devices, video gamedevices, handheld computers, smartphones, smart televisions,self-driving vehicles, smart watches, e-readers, tablet computingdevices, special-purpose hardware devices, network appliances, and theothers.

FIG. 2 illustrates an example of a user interface 200 where acalendaring application 210 is rendered before a dynamic calendar eventupdate. The calendaring application 210 illustrated in FIG. 2 mayrepresent a variety of applications, including but not limited toMicrosoft® Teams, Skype for Business®, and Microsoft Office® products.The calendaring application 210 may display a representation of acalendar view on the user interface 200. The calendar view may includeone or more calendar days, the calendar days comprising a time spanincluding a plurality of time slots. Scheduled meetings 230 and 240 maybe rendered in at least some of the time slots. The scheduled meetingsare initially rendered without an interactive control to join thescheduled meetings.

Referring to FIG. 3, the state of the calendar item 230 may bedynamically updated based on the context such as the current time anddate. For example, when a threshold time is reached prior to the meetingstart time of calendar item 230, such as fifteen minutes before thestart time, the “join” control 300 may be added to the calendar item230. The “join” control 300 may be added while the user interface is inthe calendar view and without the need for any specific input from theuser. Furthermore, the “join” control 300 may be rendered on thecalendar item 230 within the calendar view that may include a pluralityof date ranges and calendar items within those date ranges. The “join”control 300 may be rendered during the entire time that the meeting islive. Clicking on the “join” button may, for example, take user to apre-join screen or launch an application to join the meeting.

In one embodiment, calendar item 230 may further provide an indicationthat a meeting is live. In addition to adding a “join” button 300, thecalendar item 230 may provide a visual indication such as a change incolor to indicate that the meeting is live.

Once a meeting is live, additional information may be provided to enablefurther contextual awareness of the meeting. For example, referring toFIG. 4, icons 400 may be rendered on the calendar item to indicate thenumber of participants and identity of participants who have joined themeeting. In one embodiment, an icon may be rendered for each participantwho has joined the meeting.

In an embodiment, the calendar item may further provide indications asto the current content of the meeting. For example, referring to FIG. 5,if a presentation or document is being shared, a preview window 500 maybe rendered on the calendar item. As another example, the preview window500 may include a video camera view.

In an embodiment, the calendar item 230 may further provide interactiveoptions after the meeting has concluded. For example, referring to FIG.6, the calendar item 230 may provide an indication that a meeting hasended, such as a change in color to indicate that the meeting is nolonger live. Furthermore, the “join” button may be removed. Once ameeting has ended, additional information may be provided to enablefurther interaction with the content of the meeting. For example, iconsmay be rendered on the calendar item to indicate the participants whoparticipated the meeting. In an embodiment illustrated in FIG. 6, thecalendar item 230 may further provide an icon 600 to view or listen torecent activity, such as a playback of a recording of the meeting, chattranscripts, and to access the content that was shared at the meeting.For example, if a presentation or document was shared, an icon 610 maybe provided on the calendar item to access the files or documents. Inone embodiment illustrated in FIG. 7, selection of icon 600 or 610 mayopen a UI 700 that provides further details of the meeting. A follow-upbutton 710 may be provided to enable the user to schedule a follow upmeeting. Additionally, a meeting playback control 720 may be provided tolaunch a playback of a recording of the meeting.

FIG. 8 illustrates that while some features may be accessible for ameeting in calendar view 100, a calendar item may be opened to providefurther details in a pane 800. Pane 800 may include options for engagingin the meeting such as join button 810 and RSVP button 820.

FIG. 9 is a block diagram showing aspects of one example environment900, also referred to herein as a “system 900,” disclosed herein forproviding dynamic updating of calendar events. In one illustrativeexample, the example environment 900 can include one or more servers920, one or more networks 950, one or more user devices 909A-909B(collectively “user devices 909”), one or more provider devices904A-904D (collectively “provider devices 904”), and one or moreresources 906A-906E (collectively “resources 906”). The user devices 909can be utilized for interaction with one or more users 903A-903B(collectively “users 903”), and the provider devices 904 can be utilizedfor interaction with one or more service providers 905A-905D(collectively “service providers 905”). This example is provided forillustrative purposes and is not to be construed as limiting. It can beappreciated that the example environment 900 can include any number ofdevices, users, providers, and/or any number of servers 920.

For illustrative purposes, the service providers 905 can be a company,person, or any type of entity capable of providing services or productsfor the users 903, which can also be a company, person or other entity.For illustrative purposes, the service providers 905 and the users 903can be generically and individually referred to herein as “users.” Insome configurations, a data object may include one or more calendarevents. Contextual data can be analyzed to determine one or morecalendar events that can be updated dynamically.

The user devices 909, provider devices 904, servers 920 and/or any othercomputer configured with the features disclosed herein can beinterconnected through one or more local and/or wide area networks, suchas the network 950. In addition, the computing devices can communicateusing any technology, such as BLUETOOTH, WIFI, WIFI DIRECT, NFC or anyother suitable technology, which may include light-based, wired, orwireless technologies. It should be appreciated that many more types ofconnections may be utilized than described herein.

A user device 909 or a provider device 904 (collectively “computingdevices”) can operate as a stand-alone device, or such devices canoperate in conjunction with other computers, such as the one or moreservers 920. Individual computing devices can be in the form of apersonal computer, mobile phone, tablet, wearable computer, including ahead-mounted display (HMD) or watch, or any other computing devicehaving components for interacting with one or more users and/or remotecomputers. In one illustrative example, the user device 909 and theprovider device 904 can include a local memory 980, also referred toherein as a “computer-readable storage medium” or “non-transitorycomputer-readable storage medium” configured to store data, such as aclient module 902 and other contextual data described herein.

The servers 920 may be in the form of a personal computer, server farm,large-scale system or any other computing system having components forprocessing, coordinating, collecting, storing, and/or communicating databetween one or more computing device. In one illustrative example, theservers 920 can include a local memory 980, also referred to herein as a“computer-readable storage medium,” configured to store data, such as aserver module 929 and other data described herein. The servers 920 canalso include components and services, such as the application servicesand shown in FIG. 9, for providing, receiving, and processing calendardata and executing one or more aspects of the techniques describedherein. As will be described in more detail herein, any suitable modulemay operate in conjunction with other modules or devices to implementaspects of the techniques disclosed herein.

In some configurations, an application programming interface (API)exposes an interface through which an operating system and applicationprograms executing on the computing device can enable the functionalitydisclosed herein. Through the use of this data interface and otherinterfaces, the operating system and application programs cancommunicate and process contextual data and modify scheduling data asdescribed herein.

The scheduling data 939 can define appointments for the users 903 andthe providers 905. The scheduling data 939 can define a start time andan end time. The scheduling data 939 can also include location data ifan appointment is associated with a geographic location, globalcoordinates, and other information identifying a location. Thescheduling data 939 can define a single appointment or a series ofappointments. In addition, the scheduling data 939 can includecommunication information such as a phone number, IM address, URL, orother information for facilitating a voice or video conference. Thescheduling data 939 can also include a text description of anappointment and other data indicating a topic, service category, a user903 and/or a provider 905. The scheduling data 939 can be stored on theserver 920, user device 909, provider device 904, or any suitablecomputing device, which may include a Web-based service.

The attendee data 932 may include a listing of a number of attendeesthat are scheduled for a meeting. The attendee data 932 can also bebased on scheduling data 939. The document data 933 may includedocuments that are shared during a meeting. The status data 934 candefine the availability of one or more parties. For instance, statusdata 934 can indicate if a party is unavailable, available, orunavailable until a particular date. The status data 934 can also definea level of availability. These examples are provided for illustrativepurposes and are not to be construed as limiting. It can be appreciatedthat the status data 934 include a form of data indicating theavailability of a company, an individual or a group of individuals. Thepreference data 929 can include user-defined preferences orprovider-defined preferences.

To enable aspects of the techniques disclosed herein, one or morecomputing devices of FIG. 9 can be configured to generate data definingone or more live updates in response to detecting the presence of acondition. In some configurations, implementations can include receivingscheduling data defining a calendar event. In addition, theimplementations can include obtaining contextual data from a pluralityof resources. As described in more detail herein, the contextual datacan include additional scheduling data, live meeting date, meetingparticipants, and/or other data that relating to a calendar event.

One or more computing devices can be configured to identify a pattern ofthe contextual data indicating a presence of a condition that affectsone or more aspects of a calendar event. A condition can include theintroduction or modification of a calendar event, and/or other events ordata that can impact aspects of a calendar event.

FIG. 10 is a diagram illustrating an example environment 1000 in which asystem 900 can operate to generate calendar information for aninteractive session 104 and to save and edit content. In this example,an interactive session 104 is implemented between a number of clientcomputing devices 106(1) through 106(N) (where N is a positive integernumber having a value of two or greater). The client computing devices106(1) through 106(N) enable users to participate in the interactivesession 104. In this example, the interactive session 104 is hosted,over one or more network(s) 108, by the system 102. That is, the system102 can provide a service that enables users of the client computingdevices 106(1) through 106(N) to participate in the interactive session104 (e.g., via a live viewing and/or a recorded viewing). Consequently,a “participant” to the interactive session 104 can comprise a userand/or a client computing device (e.g., multiple users may be in aconference room participating in a interactive session via the use of asingle client computing device), each of which can communicate withother participants. As an alternative, the interactive session 104 canbe hosted by one of the client computing devices 106(1) through 106(N)utilizing peer-to-peer technologies.

In examples described herein, client computing devices 106(1) through106(N) participating in an interactive session 104 are configured toreceive and render for display, on a user interface of a display screen,interactive data. The interactive data can comprise a collection ofvarious instances, or streams, of content. For example, an individualstream of content can comprise media data associated with a video feed(e.g., audio and visual data that capture the appearance and speech of auser participating in the interactive session). Another example of anindividual stream of content can comprise media data that includes afile displayed on a display screen along with audio data that capturesthe speech of a user. Accordingly, the various streams of content withinthe teleconference data enable a remote meeting to be facilitatedbetween a group of people and the sharing of content within the group ofpeople.

The system 102 includes device(s) 110. The device(s) 110 and/or othercomponents of the system 102 can include distributed computing resourcesthat communicate with one another and/or with the client computingdevices 106(1) through 106(N) via the one or more network(s) 108. Insome examples, the system 102 may be an independent system that istasked with managing aspects of one or more interactive sessions such asinteractive session 104. As an example, the system 102 may be managed byentities such as SLACK, WEBEX, GOTOMEETING, GOOGLE HANGOUTS, etc.

Network(s) 108 may include, for example, public networks such as theInternet, private networks such as an institutional and/or personalintranet, or some combination of private and public networks. Network(s)108 may also include any type of wired and/or wireless network,including but not limited to local area networks (“LANs”), wide areanetworks (“WANs”), satellite networks, cable networks, Wi-Fi networks,WiMax networks, mobile communications networks (e.g., 3G, 4G, and soforth) or any combination thereof. Network(s) 108 may utilizecommunications protocols, including packet-based and/or datagram-basedprotocols such as Internet protocol (“IP”), transmission controlprotocol (“TCP”), user datagram protocol (“UDP”), or other types ofprotocols. Moreover, network(s) 108 may also include a number of devicesthat facilitate network communications and/or form a hardware basis forthe networks, such as switches, routers, gateways, access points,firewalls, base stations, repeaters, backbone devices, and the like.

In some examples, network(s) 108 may further include devices that enableconnection to a wireless network, such as a wireless access point(“WAP”). Examples support connectivity through WAPs that send andreceive data over various electromagnetic frequencies (e.g., radiofrequencies), including WAPs that support Institute of Electrical andElectronics Engineers (“IEEE”) 802.11 standards (e.g., 802.11g, 802.11n,and so forth), and other standards.

In various examples, device(s) 110 may include one or more computingdevices that operate in a cluster or other grouped configuration toshare resources, balance load, increase performance, provide fail-oversupport or redundancy, or for other purposes. For instance, device(s)110 may belong to a variety of classes of devices such as traditionalserver-type devices, desktop computer-type devices, and/or mobile-typedevices. Thus, although illustrated as a single type of device—aserver-type device—device(s) 110 may include a diverse variety of devicetypes and are not limited to a particular type of device. Device(s) 110may represent, but are not limited to, server computers, desktopcomputers, web-server computers, personal computers, mobile computers,laptop computers, tablet computers, or any other sort of computingdevice.

A client computing device (e.g., one of client computing device(s)106(1) through 106(N)) (each of which are also referred to herein as a“data processing system”) may belong to a variety of classes of devices,which may be the same as, or different from, device(s) 110, such astraditional client-type devices, desktop computer-type devices,mobile-type devices, special purpose-type devices, embedded-typedevices, and/or wearable-type devices. Thus, a client computing devicecan include, but is not limited to, a desktop computer, a game consoleand/or a gaming device, a tablet computer, a personal data assistant(“PDA”), a mobile phone/tablet hybrid, a laptop computer, atelecommunication device, a computer navigation type client computingdevice such as a satellite-based navigation system including a globalpositioning system (“GPS”) device, a wearable device, a virtual reality(“VR”) device, an augmented reality (AR) device, an implanted computingdevice, an automotive computer, a network-enabled television, a thinclient, a terminal, an Internet of Things (“IoT”) device, a workstation, a media player, a personal video recorders (“PVR”), a set-topbox, a camera, an integrated component (e.g., a peripheral device) forinclusion in a computing device, an appliance, or any other sort ofcomputing device. Moreover, the client computing device may include acombination of the earlier listed examples of the client computingdevice such as, for example, desktop computer-type devices or amobile-type device in combination with a wearable device, etc.

Client computing device(s) 106(1) through 106(N) of the various classesand device types can represent any type of computing device having oneor more processing unit(s) 112 operably connected to computer-readablemedia 114 such as via a bus 116, which in some instances can include oneor more of a system bus, a data bus, an address bus, a PCI bus, aMini-PCI bus, and any variety of local, peripheral, and/or independentbuses.

Executable instructions stored on computer-readable media 114 mayinclude, for example, an operating system 118, a client module 120, aprofile module 122, and other modules, programs, or applications thatare loadable and executable by processing units(s) 112.

Client computing device(s) 106(1) through 106(N) may also include one ormore interface(s) 124 to enable communications between client computingdevice(s) 106(1) through 106(N) and other networked devices, such asdevice(s) 110, over network(s) 108. Such network interface(s) 124 mayinclude one or more network interface controllers (NICs) or other typesof transceiver devices to send and receive communications and/or dataover a network. Moreover, a client computing device 106(1) can includeinput/output (“I/O”) interfaces 126 that enable communications withinput/output devices such as user input devices including peripheralinput devices (e.g., a game controller, a keyboard, a mouse, a pen, avoice input device such as a microphone, a touch input device, agestural input device, and the like) and/or output devices includingperipheral output devices (e.g., a display, a printer, audio speakers, ahaptic output device, and the like). FIG. 10 illustrates that clientcomputing device 106(N) is in some way connected to a display device(e.g., a display screen 128), which can display the interactive timelinefor the interactive session 104, as shown.

In the example environment 1000 of FIG. 10, client computing devices106(1) through 106(N) may use their respective client modules 120 toconnect with one another and/or other external device(s) in order toparticipate in the interactive session 104. For instance, a first usermay utilize a client computing device 106(1) to communicate with asecond user of another client computing device 106(2). When executingclient modules 120, the users may share data, which may cause the clientcomputing device 106(1) to connect to the system 102 and/or the otherclient computing devices 106(2) through 106(N) over the network(s) 108.

The client computing device(s) 106(1) through 106(N) may use theirrespective profile module 122 to generate participant profiles andprovide the participant profiles to other client computing devicesand/or to the device(s) 110 of the system 102. A participant profile mayinclude one or more of an identity of a user or a group of users (e.g.,a name, a unique identifier (“ID”), etc.), user data such as personaldata, machine data such as location (e.g., an IP address, a room in abuilding, etc.) and technical capabilities, etc. Participant profilesmay be utilized to register participants for interactive sessions.

As shown in FIG. 10, the device(s) 110 of the system 102 includes aserver module 130 and an output module 132. The server module 130 isconfigured to receive, from individual client computing devices such asclient computing devices 106(1) through 106(3), media streams 134(1)through 134(3). As described above, media streams can comprise a videofeed (e.g., audio and visual data associated with a user), audio datawhich is to be output (e.g., an audio only experience in which videodata of the user is not transmitted), text data (e.g., text messages),file data and/or screen sharing data (e.g., a document, a slide deck, animage, a video displayed on a display screen, etc.), and so forth. Thus,the server module 130 is configured to receive a collection of variousmedia streams 134(1) through 134(3) (the collection being referred toherein as media data 134). In some scenarios, not all the clientcomputing devices that participate in the interactive session 104provide a media stream. For example, a client computing device may onlybe a consuming, or a “listening”, device such that it only receivescontent associated with the interactive session 104 but does not provideany content to the interactive session 104.

The server module 130 is configured to generate session data 136 basedon the media data 134. In various examples, the server module 130 canselect aspects of the media data 134 that are to be shared with theparticipating client computing devices 106(1) through 106(N).Consequently, the server module 130 is configured to pass the sessiondata 136 to the output module 132 and the output module 132 maycommunicate teleconference data to the client computing devices 106(1)through 106(3). As shown, the output module 132 transmits teleconferencedata 138 to client computing device 106(1), transmits teleconferencedata 140 to client computing device 106(2), and transmits interactivedata 142 to client computing device 106(3). The interactive datatransmitted to the client computing devices can be the same or can bedifferent (e.g., positioning of streams of content within a userinterface may vary from one device to the next). The output module 132is also configured to record the interactive session (e.g., a version ofthe interactive data) and to maintain a recording of the interactivesession 144.

The device(s) 110 can also include a calendar module 146, and in variousexamples, the calendar module 146 is configured to manage schedule data148 in the session data 136 and/or events relevant to interactivesession 144.

A client computing device such as client computing device 106(N) canprovide a request 150 to view a recording of the interactive session104. In response, the output module 132 can provide interactive data andcalendar data 152 to be displayed on a display screen 128 associatedwith the client computing device 106(N). The teleconference datatransmitted to client computing device 106(N) comprises previouslyrecorded content of the interactive session 104. As further describedherein, a user of client computing device 106(N) can provide input(s) toadd supplemental recorded content to the interactive session 104 and/orto the interactive timeline, and data 154 associated with thesupplemental recorded content can be transmitted from client computingdevice 106(N) to the system 102 so that the recording of the interactivesession 144 and the interactive timeline can be updated with thesupplemental recorded content. This enables other participants (e.g.,users of client computing devices 106(1) through 106(3)) to consume orview the supplemental recorded content after the live viewing of theinteractive session has already ended. An improved human-computerinterface (“HCl”) is disclosed herein for interacting withrepresentations of calendar and calendar content. In some embodiments,the calendar information may be presented in conjunction with acommunications platform such as a videoconferencing platform. Such asystem may be referred to as an interactive calendaring and schedulingsystem.

FIG. 11 illustrates a diagram that shows example components of anexample device 1100 configured to render and update calendar data. Thedevice 1100 may represent one of device(s) 106, or in other examples aclient computing device (e.g., client computing device 106(1)), wherethe device 1100 includes one or more processing unit(s) 1108,computer-readable media 1104, and communication interface(s) 1106. Thecomponents of the device 1100 are operatively connected, for example,via a bus, which may include one or more of a system bus, a data bus, anaddress bus, a PCI bus, a Mini-PCI bus, and any variety of local,peripheral, and/or independent buses.

As utilized herein, processing unit(s), such as the processing unit(s)1108 and/or processing unit(s) 1111, may represent, for example, aCPU-type processing unit, a GPU-type processing unit, afield-programmable gate array (“FPGA”), another class of digital signalprocessor (“DSP”), or other hardware logic components that may, in someinstances, be driven by a CPU. For example, and without limitation,illustrative types of hardware logic components that may be utilizedinclude Application-Specific Integrated Circuits (“ASICs”),Application-Specific Standard Products (“ASSPs”), System-on-a-ChipSystems (“SOCs”), Complex Programmable Logic Devices (“CPLDs”), etc.

As utilized herein, computer-readable media, such as computer-readablemedia 1104, may store instructions executable by the processing unit(s).The computer-readable media may also store instructions executable byexternal processing units such as by an external CPU, an external GPU,and/or executable by an external accelerator, such as an FPGA typeaccelerator, a DSP type accelerator, or any other internal or externalaccelerator. In various examples, at least one CPU, GPU, and/oraccelerator is incorporated in a computing device, while in someexamples one or more of a CPU, GPU, and/or accelerator is external to acomputing device.

Computer-readable media may include computer storage media and/orcommunication media. Computer storage media may include one or more ofvolatile memory, nonvolatile memory, and/or other persistent and/orauxiliary computer storage media, removable and non-removable computerstorage media implemented in any method or technology for storage ofinformation such as computer-readable instructions, data structures,program modules, or other data. Thus, computer storage media includestangible and/or physical forms of media included in a device and/orhardware component that is part of a device or external to a device,including but not limited to random-access memory (“RAM”), staticrandom-access memory (“SRAM”), dynamic random-access memory (“DRAM”),phase change memory (“PCM”), read-only memory (“ROM”), erasableprogrammable read-only memory (“EPROM”), electrically erasableprogrammable read-only memory (“EEPROM”), flash memory, compact discread-only memory (“CD-ROM”), digital versatile disks (“DVDs”), opticalcards or other optical storage media, magnetic cassettes, magnetic tape,magnetic disk storage, magnetic cards or other magnetic storage devicesor media, solid-state memory devices, storage arrays, network attachedstorage, storage area networks, hosted computer storage or any otherstorage memory, storage device, and/or storage medium that can be usedto store and maintain information for access by a computing device.

In contrast to computer storage media, communication media may embodycomputer-readable instructions, data structures, program modules, orother data in a modulated data signal, such as a carrier wave, or othertransmission mechanism. As defined herein, computer storage media doesnot include communication media. That is, computer storage media doesnot include communications media consisting solely of a modulated datasignal, a carrier wave, or a propagated signal, per se.

Communication interface(s) 1106 may represent, for example, networkinterface controllers (“NICs”) or other types of transceiver devices tosend and receive communications over a network.

In the illustrated example, computer-readable media 1104 includes a datastore 1108. In some examples, data store 1108 includes data storage suchas a database, data warehouse, or other type of structured orunstructured data storage. In some examples, data store 1108 includes acorpus and/or a relational database with one or more tables, indices,stored procedures, and so forth to enable data access including one ormore of hypertext markup language (“HTML”) tables, resource descriptionframework (“RDF”) tables, web ontology language (“OWL”) tables, and/orextensible markup language (“XML”) tables, for example.

The data store 1108 may store data for the operations of processes,applications, components, and/or modules stored in computer-readablemedia 1104 and/or executed by processing unit(s) 1118 and/oraccelerator(s). For instance, in some examples, data store 1108 maystore session data 1110 (e.g., session data 136), profile data 1181(e.g., associated with a participant profile), and/or other data. Thesession data 1110 can include a total number of participants (e.g.,users and/or client computing devices) in the interactive session 104,and activity that occurs in the interactive session 104, and/or otherdata related to when and how the interactive session 104 is conducted orhosted. The data store 1108 can also include recording(s) 1114 ofinteractive session(s).

Alternately, some or all of the above-referenced data can be stored onseparate memories 1181 on board one or more processing unit(s) 1118 suchas a memory on board a CPU-type processor, a GPU-type processor, anFPGA-type accelerator, a DSP-type accelerator, and/or anotheraccelerator. In this example, the computer-readable media 1104 alsoincludes operating system 1184 and application programming interface(s)1186 configured to expose the functionality and the data of the device1100 to other devices. Additionally, the computer-readable media 1104includes one or more modules such as the server module 130, the outputmodule 132, and the calendar module 146, although the number ofillustrated modules is just an example, and the number may vary higheror lower. That is, functionality described herein in association withthe illustrated modules may be performed by a fewer number of modules ora larger number of modules on one device or spread across multipledevices.

FIG. 12 illustrates aspects of the system 1200 that provide a frameworkfor several example scenarios utilizing the techniques disclosed herein.More specifically, this block diagram of the system 1200 shows anillustrative example of the server 120 receiving scheduling data 131defining a scheduled meeting. The server 120 is also storing schedulingdata 131 defining a number of calendar events for a user and preferencedata 129. The server 120 also receives contextual data 650 from a numberof resources 106A-106E, as well as other resources described herein. Toillustrate aspects of the examples described below, the user device 101is displaying a user interface (UI) 200 showing a calendar object.

FIG. 13 is a diagram illustrating aspects of a routine 1300 according toone embodiment disclosed herein. It should be understood by those ofordinary skill in the art that the operations of the methods disclosedherein are not necessarily presented in any particular order and thatperformance of some or all of the operations in an alternative order(s)is possible and is contemplated. The operations have been presented inthe demonstrated order for ease of description and illustration.Operations may be added, omitted, performed together, and/or performedsimultaneously, without departing from the scope of the appended claims.

It should also be understood that the illustrated methods can end at anytime and need not be performed in their entireties. Some or alloperations of the methods, and/or substantially equivalent operations,can be performed by execution of computer-readable instructions includedon a computer-storage media, as defined herein. The term“computer-readable instructions,” and variants thereof, as used in thedescription and claims, is used expansively herein to include routines,applications, application modules, program modules, programs,components, data structures, algorithms, and the like. Computer-readableinstructions can be implemented on various system configurations,including single-processor or multiprocessor systems, minicomputers,mainframe computers, personal computers, hand-held computing devices,microprocessor-based, programmable consumer electronics, combinationsthereof, and the like.

Thus, it should be appreciated that the logical operations describedherein are implemented (1) as a sequence of computer implemented acts orprogram modules running on a computing system such as those describedherein) and/or (2) as interconnected machine logic circuits or circuitmodules within the computing system. The implementation is a matter ofchoice dependent on the performance and other requirements of thecomputing system. Accordingly, the logical operations may be implementedin software, in firmware, in special purpose digital logic, and anycombination thereof.

Additionally, the operations illustrated in FIG. 13 and the other FIGS.can be implemented in association with the example presentation GUIsdescribed above with respect to FIGS. 1 through 12.

Referring to FIG. 13, operation 1301 illustrates rendering arepresentation of a calendar view on a user interface (UI). In anembodiment, the calendar view may be indicative of one or more calendardays. Additionally, the calendar days may comprise a time span includinga plurality of time slots. Operation 1301 may be followed by operation1303. Operation 1303 illustrates rendering a representation of acalendar event indicative of a scheduled meeting in at least one of thetime slots. In an embodiment, the scheduled meeting may be renderedwithout an interactive control to join the scheduled meeting. Operation1303 may be followed by operation 1305. Operation 1305 illustratesdetermining that a start time for the scheduled meeting is within athreshold time. Operation 1305 may be followed by operation 1307.Operation 1307 illustrates in response to determining that the starttime for the scheduled meeting is within the threshold time, updatingthe rendering to include the interactive control to join the scheduledmeeting. In an embodiment, the interactive control may include at leasta selectable region that is configured to indicate that the scheduledmeeting is to be joined. Operation 1307 may be followed by operation1309. Operation 1309 illustrates receiving, via the interactive control,input data indicative of an activation of the interactive control.Operation 1309 may be followed by operation 1311. Operation 1311illustrates in response the input data, causing a collaborationapplication to join the scheduled meeting.

FIG. 14 is a diagram illustrating aspects of a routine 1400 forinteracting with a rendered environment, according to one embodimentdisclosed herein. Referring to FIG. 14, operation 1401 illustratesrendering a representation of a calendar view on a user interface (UI).In an embodiment, the calendar view may be indicative of one or morecalendar days. The calendar days may further comprise a time spanincluding a plurality of time slots. Operation 1401 may be followed byoperation 1403. Operation 1403 illustrates rendering a representation ofa scheduled meeting in at least one of the time slots. In an embodiment,the scheduled meeting may be rendered without an interactive control tojoin the scheduled meeting. Operation 1403 may be followed by operation1405. Operation 1405 illustrates determining that a start time for thescheduled meeting is within a threshold time. Operation 1405 may befollowed by operation 1407. Operation 1407 illustrates in response todetermining that the start time for the scheduled meeting is within thethreshold time, converting the representation of the scheduled meetingto a live meeting object within the calendar view.

FIG. 15 shows additional details of an example computer architecture1500 for a computer, such as any of the computing devices depicted inFIGS. 1-14, capable of executing the program components describedherein. Thus, the computer architecture 1500 illustrated in FIG. 15illustrates an architecture for a server computer, mobile phone, a PDA,a smart phone, a desktop computer, a netbook computer, a tabletcomputer, and/or a laptop computer. The computer architecture 1500 maybe utilized to execute any aspects of the software components presentedherein.

The computer architecture 1500 illustrated in FIG. 15 includes a centralprocessing unit 1502 (“CPU”), a system memory 1504, including a randomaccess memory 15015 (“RAM”) and a read-only memory (“ROM”) 1508, and asystem bus 1510 that couples the memory 1504 to the CPU 1502. A basicinput/output system containing the basic routines that help to transferinformation between elements within the computer architecture 1500, suchas during startup, is stored in the ROM 1508. The computer architecture1500 further includes a mass storage device 1512 for storing anoperating system 1507, data, such as the contextual data 1550, inputdata 1551, scheduling data 131, calendar event 1567, content data 1569,and one or more application programs (not depicted in FIG. 15).

The mass storage device 1512 is connected to the CPU 1502 through a massstorage controller (not shown) connected to the bus 1510. The massstorage device 1512 and its associated computer-readable media providenon-volatile storage for the computer architecture 1500. Although thedescription of computer-readable media contained herein refers to a massstorage device, such as a solid state drive, a hard disk or CD-ROMdrive, it should be appreciated by those skilled in the art thatcomputer-readable media can be any available computer storage media orcommunication media that can be accessed by the computer architecture1500.

Communication media includes computer readable instructions, datastructures, program modules, or other data in a modulated data signalsuch as a carrier wave or other transport mechanism and includes anydelivery media. The term “modulated data signal” means a signal that hasone or more of its characteristics changed or set in a manner as toencode information in the signal. By way of example, and not limitation,communication media includes wired media such as a wired network ordirect-wired connection, and wireless media such as acoustic, RF,infrared and other wireless media. Combinations of the any of the aboveshould also be included within the scope of computer-readable media.

By way of example, and not limitation, computer storage media mayinclude volatile and non-volatile, removable and non-removable mediaimplemented in any method or technology for storage of information suchas computer-readable instructions, data structures, program modules orother data. For example, computer media includes, but is not limited to,RAM, ROM, EPROM, EEPROM, flash memory or other solid state memorytechnology, CD-ROM, digital versatile disks (“DVD”), HD-DVD, BLU-RAY, orother optical storage, magnetic cassettes, magnetic tape, magnetic diskstorage or other magnetic storage devices, or any other medium which canbe used to store the desired information and which can be accessed bythe computer architecture 1500. For purposes the claims, the phrase“computer storage medium,” “computer-readable storage medium” andvariations thereof, does not include waves, signals, and/or othertransitory and/or intangible communication media, per se.

According to various configurations, the computer architecture 1500 mayoperate in a networked environment using logical connections to remotecomputers through the network 7515 and/or another network (not shown).The computer architecture 1500 may connect to the network 7515 through anetwork interface unit 1514 connected to the bus 1510. It should beappreciated that the network interface unit 1514 also may be utilized toconnect to other types of networks and remote computer systems. Thecomputer architecture 1500 also may include an input/output controller1516 for receiving and processing input from a number of other devices,including a keyboard, mouse, or electronic stylus (not shown in FIG.15). Similarly, the input/output controller 1516 may provide output to adisplay screen, a printer, or other type of output device (also notshown in FIG. 15).

It should be appreciated that the software components described hereinmay, when loaded into the CPU 1502 and executed, transform the CPU 1502and the overall computer architecture 1500 from a general-purposecomputing system into a special-purpose computing system customized tofacilitate the functionality presented herein. The CPU 1502 may beconstructed from any number of transistors or other discrete circuitelements, which may individually or collectively assume any number ofstates. More specifically, the CPU 1502 may operate as a finite-statemachine, in response to executable instructions contained within thesoftware modules disclosed herein. These computer-executableinstructions may transform the CPU 1502 by specifying how the CPU 1502transitions between states, thereby transforming the transistors orother discrete hardware elements constituting the CPU 1502.

Encoding the software modules presented herein also may transform thephysical structure of the computer-readable media presented herein. Thespecific transformation of physical structure may depend on variousfactors, in different implementations of this description. Examples ofsuch factors may include, but are not limited to, the technology used toimplement the computer-readable media, whether the computer-readablemedia is characterized as primary or secondary storage, and the like.For example, if the computer-readable media is implemented assemiconductor-based memory, the software disclosed herein may be encodedon the computer-readable media by transforming the physical state of thesemiconductor memory. For example, the software may transform the stateof transistors, capacitors, or other discrete circuit elementsconstituting the semiconductor memory. The software also may transformthe physical state of such components in order to store data thereupon.

As another example, the computer-readable media disclosed herein may beimplemented using magnetic or optical technology. In suchimplementations, the software presented herein may transform thephysical state of magnetic or optical media, when the software isencoded therein. These transformations may include altering the magneticcharacteristics of particular locations within given magnetic media.These transformations also may include altering the physical features orcharacteristics of particular locations within given optical media, tochange the optical characteristics of those locations. Othertransformations of physical media are possible without departing fromthe scope and spirit of the present description, with the foregoingexamples provided only to facilitate this discussion.

In light of the above, it should be appreciated that many types ofphysical transformations take place in the computer architecture 1500 inorder to store and execute the software components presented herein. Italso should be appreciated that the computer architecture 1500 mayinclude other types of computing devices, including hand-held computers,embedded computer systems, personal digital assistants, and other typesof computing devices known to those skilled in the art. It is alsocontemplated that the computer architecture 1500 may not include all ofthe components shown in FIG. 15, may include other components that arenot explicitly shown in FIG. 15, or may utilize an architecturecompletely different than that shown in FIG. 15.

FIG. 16 depicts an illustrative distributed computing environment 1600capable of executing the software components described herein forproviding contextually-aware insights into calendar events. Thus, thedistributed computing environment 1600 illustrated in FIG. 16 can beutilized to execute any aspects of the software components presentedherein. For example, the distributed computing environment 1600 can beutilized to execute aspects of the software components described herein.

According to various implementations, the distributed computingenvironment 1600 includes a computing environment 1602 operating on, incommunication with, or as part of the network 1604. The network 1604 maybe or may include the network 1656, described above. The network 1604also can include various access networks. One or more client devices1606A-1606N (hereinafter referred to collectively and/or generically as“clients 1606”) can communicate with the computing environment 1602 viathe network 1604 and/or other connections (not illustrated in FIG. 16).In one illustrated configuration, the clients 1606 include a computingdevice 1606A such as a laptop computer, a desktop computer, or othercomputing device; a slate or tablet computing device (“tablet computingdevice”) 1606B; a mobile computing device 1606C such as a mobiletelephone, a smart phone, or other mobile computing device; a servercomputer 1606D; and/or other devices 1606N. It should be understood thatany number of clients 1606 can communicate with the computingenvironment 1602. Two example computing architectures for the clients1606 are illustrated and described herein with reference to FIGS. 1-15.It should be understood that the illustrated clients 1606 and computingarchitectures illustrated and described herein are illustrative, andshould not be construed as being limited in any way.

In the illustrated configuration, the computing environment 1602includes application servers 1608, data storage 1610, and one or morenetwork interfaces 1612. According to various implementations, thefunctionality of the application servers 1608 can be provided by one ormore server computers that are executing as part of, or in communicationwith, the network 1604. The application servers 1608 can host variousservices, virtual machines, portals, and/or other resources. In theillustrated configuration, the application servers 1608 host one or morevirtual machines 1614 for hosting applications or other functionality.According to various implementations, the virtual machines 1614 host oneor more applications and/or software modules for providingcontextually-aware insights into calendar events. It should beunderstood that this configuration is illustrative, and should not beconstrued as being limiting in any way. The application servers 1608also host or provide access to one or more portals, link pages, Websites, and/or other information (“Web portals”) 1616.

According to various implementations, the application servers 1608 alsoinclude one or more mailbox services 1618 and one or more messagingservices 1620. The mailbox services 1618 can include electronic mail(“email”) services. The mailbox services 1618 also can include variouspersonal information management (“PIM”) services including, but notlimited to, calendar services, contact management services,collaboration services, and/or other services. The messaging services1620 can include, but are not limited to, instant messaging services,chat services, forum services, and/or other communication services.

The application servers 1608 also may include one or more socialnetworking services 1622. The social networking services 1622 caninclude various social networking services including, but not limitedto, services for sharing or posting status updates, instant messages,links, photos, videos, and/or other information; services for commentingor displaying interest in articles, products, blogs, or other resources;and/or other services. In some configurations, the social networkingservices 1622 are provided by or include the FACEBOOK social networkingservice, the LINKEDIN professional networking service, the MYSPACEsocial networking service, the FOURSQUARE geographic networking service,the YAMMER office colleague networking service, and the like. In otherconfigurations, the social networking services 1622 are provided byother services, sites, and/or providers that may or may not beexplicitly known as social networking providers. For example, some websites allow users to interact with one another via email, chat services,and/or other means during various activities and/or contexts such asreading published articles, commenting on goods or services, publishing,collaboration, gaming, and the like. Examples of such services include,but are not limited to, the WINDOWS LIVE service and the XBOX LIVEservice from Microsoft Corporation in Redmond, Wash. Other services arepossible and are contemplated.

The social networking services 1622 also can include commenting,blogging, and/or micro blogging services. Examples of such servicesinclude, but are not limited to, the YELP commenting service, the KUDZUreview service, the OFFICETALK enterprise micro blogging service, theTWITTER messaging service, the GOOGLE BUZZ service, and/or otherservices. It should be appreciated that the above lists of services arenot exhaustive and that numerous additional and/or alternative socialnetworking services 1622 are not mentioned herein for the sake ofbrevity. As such, the above configurations are illustrative, and shouldnot be construed as being limited in any way. According to variousimplementations, the social networking services 1622 may host one ormore applications and/or software modules for providing thefunctionality described herein for providing contextually-aware insightsinto calendar events. For instance, any one of the application servers1608 may communicate or facilitate the functionality and featuresdescribed herein. For instance, a social networking application, mailclient, messaging client or a browser running on a phone or any otherclient 1606 may communicate with a networking service 1622 andfacilitate the functionality, even in part, described above with respectto FIGS. 1-15.

As shown in FIG. 16, the application servers 1608 also can host otherservices, applications, portals, and/or other resources (“otherresources”) 1624. The other resources 1624 can include, but are notlimited to, document sharing, rendering or any other functionality. Itthus can be appreciated that the computing environment 1602 can provideintegration of the concepts and technologies disclosed herein providedherein with various mailbox, messaging, social networking, and/or otherservices or resources.

As mentioned above, the computing environment 1602 can include the datastorage 1610. According to various implementations, the functionality ofthe data storage 1610 is provided by one or more databases operating on,or in communication with, the network 1604. The functionality of thedata storage 1610 also can be provided by one or more server computersconfigured to host data for the computing environment 1602. The datastorage 1610 can include, host, or provide one or more real or virtualdata stores 1626A-1626N (hereinafter referred to collectively and/orgenerically as “datastores 1626”). The datastores 1626 are configured tohost data used or created by the application servers 1608 and/or otherdata. Although not illustrated in FIG. 16, the datastores 1626 also canhost or store web page documents, word documents, presentationdocuments, data structures, algorithms for execution by a recommendationengine, and/or other data utilized by any application program or anothermodule. Aspects of the datastores 1626 may be associated with a servicefor storing files.

The computing environment 1602 can communicate with, or be accessed by,the network interfaces 1612. The network interfaces 1612 can includevarious types of network hardware and software for supportingcommunications between two or more computing devices including, but notlimited to, the clients 1606 and the application servers 1608. It shouldbe appreciated that the network interfaces 1612 also may be utilized toconnect to other types of networks and/or computer systems.

It should be understood that the distributed computing environment 1600described herein can provide any aspects of the software elementsdescribed herein with any number of virtual computing resources and/orother distributed computing functionality that can be configured toexecute any aspects of the software components disclosed herein.According to various implementations of the concepts and technologiesdisclosed herein, the distributed computing environment 1600 providesthe software functionality described herein as a service to the clients1606. It should be understood that the clients 1606 can include real orvirtual machines including, but not limited to, server computers, webservers, personal computers, mobile computing devices, smart phones,and/or other devices. As such, various configurations of the conceptsand technologies disclosed herein enable any device configured to accessthe distributed computing environment 1600 to utilize the functionalitydescribed herein for providing contextually-aware insights into calendarevents, among other aspects.

It should be appreciated that the above-described subject matter may beimplemented as a computer-controlled apparatus, a computer process, acomputing system, or as an article of manufacture such as acomputer-readable storage medium. The operations of the example methodsare illustrated in individual blocks and summarized with reference tothose blocks. The methods are illustrated as logical flows of blocks,each block of which can represent one or more operations that can beimplemented in hardware, software, or a combination thereof. In thecontext of software, the operations represent computer-executableinstructions stored on one or more computer-readable media that, whenexecuted by one or more processors, enable the one or more processors toperform the recited operations.

Generally, computer-executable instructions include routines, programs,objects, modules, components, data structures, and the like that performparticular functions or implement particular abstract data types. Theorder in which the operations are described is not intended to beconstrued as a limitation, and any number of the described operationscan be executed in any order, combined in any order, subdivided intomultiple sub-operations, and/or executed in parallel to implement thedescribed processes. The described processes can be performed byresources associated with one or more device(s) such as one or moreinternal or external CPUs or GPUs, and/or one or more pieces of hardwarelogic such as field-programmable gate arrays (“FPGAs”), digital signalprocessors (“DSPs”), or other types of accelerators.

All of the methods and processes described above may be embodied in, andfully automated via, software code modules executed by one or moregeneral purpose computers or processors. The code modules may be storedin any type of computer-readable storage medium or other computerstorage device, such as those described below. Some or all of themethods may alternatively be embodied in specialized computer hardware,such as that described below.

Any routine descriptions, elements or blocks in the flow diagramsdescribed herein and/or depicted in the attached figures should beunderstood as potentially representing modules, segments, or portions ofcode that include one or more executable instructions for implementingspecific logical functions or elements in the routine. Alternateimplementations are included within the scope of the examples describedherein in which elements or functions may be deleted, or executed out oforder from that shown or discussed, including substantiallysynchronously or in reverse order, depending on the functionalityinvolved as would be understood by those skilled in the art.

It is to be appreciated that conditional language used herein such as,among others, “can,” “could,” “might” or “may,” unless specificallystated otherwise, are understood within the context to present thatcertain examples include, while other examples do not include, certainfeatures, elements and/or steps. Thus, such conditional language is notgenerally intended to imply that certain features, elements and/or stepsare in any way required for one or more examples or that one or moreexamples necessarily include logic for deciding, with or without userinput or prompting, whether certain features, elements and/or steps areincluded or are to be performed in any particular example. Conjunctivelanguage such as the phrase “at least one of X, Y or Z,” unlessspecifically stated otherwise, is to be understood to present that anitem, term, etc. may be either X, Y, or Z, or a combination thereof.

It should be also be appreciated that many variations and modificationsmay be made to the above-described examples, the elements of which areto be understood as being among other acceptable examples. All suchmodifications and variations are intended to be included herein withinthe scope of this disclosure and protected by the following claims.

In closing, although the various configurations have been described inlanguage specific to structural features and/or methodological acts, itis to be understood that the subject matter defined in the appendedrepresentations is not necessarily limited to the specific features oracts described. Rather, the specific features and acts are disclosed asexample forms of implementing the claimed subject matter.

Among many other technical benefits, the technologies herein enable moreefficient use of computing resources such as processor cycles, memory,network bandwidth, and power, as compared to previous solutions relyingupon inefficient manual placement of virtual objects in a 3Denvironment. Other technical benefits not specifically mentioned hereincan also be realized through implementations of the disclosed subjectmatter.

Although the techniques have been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the appended claims are not necessarily limited to the features oracts described. Rather, the features and acts are described as exampleimplementations of such techniques.

EXAMPLE CLAUSES

The disclosure presented herein encompasses the subject matter set forthin the following example clauses.

Example Clause A, a system comprising:

one or more data processing units; and

a computer-readable medium having encoded thereon computer-executableinstructions to cause the one or more data processing units to:

render a representation of a calendar view on a user interface (UI), thecalendar view indicative of one or more calendar days, the calendar dayscomprising a time span including a plurality of time slots;

render a representation of a calendar event indicative of a scheduledmeeting in at least one of the time slots, wherein the scheduled meetingis rendered without an interactive control to join the scheduledmeeting;

determine that a start time for the scheduled meeting is within athreshold time;

in response to determining that the start time for the scheduled meetingis within the threshold time, update the rendering to include theinteractive control to join the scheduled meeting, the interactivecontrol having at least a selectable region that is configured toindicate that the scheduled meeting is to be joined;

receive, via the interactive control, input data indicative of anactivation of the interactive control; and

in response the input data, cause a collaboration application to jointhe scheduled meeting.

Example Clause B, the system of Example Clause A, wherein theinstructions further cause the one or more data processing units to:

in response to determining that the start time for the scheduled meetingis within the threshold time, update the rendered scheduled meeting tovisually indicate that the scheduled meeting is within the thresholdtime.

Example Clause C, the system of any one of Example Clauses A through B,wherein the instructions further cause the one or more data processingunits to:

determine that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, update, on the UI, the rendering to remove the interactivecontrol to join the scheduled meeting.

Example Clause D, the system of any one of Example Clauses A through C,wherein the instructions further cause the one or more data processingunits to:

determine that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, update the rendering to visually indicate that the scheduledmeeting is no longer active.

Example Clause E, the system of any one of Example Clauses A through D,wherein the instructions further cause the one or more data processingunits to:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, update the rendered scheduledmeeting to visually indicate one or more participants who have joinedthe scheduled meeting.

Example Clause F, the system of any one of Example Clauses A through E,wherein the instructions further cause the one or more data processingunits to:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, update the rendered scheduledmeeting to visually indicate a live image of the scheduled meeting.

Example Clause G, the system of any one of Example Clauses A through F,wherein the instructions further cause the one or more data processingunits to:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, update the rendered scheduledmeeting to include a preview icon configured to launch a preview ofrecent messages associated with the scheduled meeting.

Example Clause H, the system of any one of Example Clauses A through G,wherein the instructions further cause the one or more data processingunits to:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, update the rendered scheduledmeeting to include a files icon configured to indicate that a new filehas been added that is associated with the scheduled meeting.

Example Clause I, the system of any one of Example Clauses A through H,wherein the instructions further cause the one or more data processingunits to:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, update the rendered scheduledmeeting to include a notes icon configured to indicate that new noteshave been added that are associated with the scheduled meeting.

While Example Clauses A through I are described above with respect to asystem, it is understood in the context of this disclosure that thesubject matter of Example Clauses A through I can additionally oralternatively be implemented by a method or device.

Example Clause J, a method to be performed by a data processing system,the method comprising:

rendering a representation of a calendar view on a user interface (UI),the calendar view indicative of one or more calendar days, the calendardays comprising a time span including a plurality of time slots;

rendering a representation of a scheduled meeting in at least one of thetime slots, wherein the scheduled meeting is rendered without aninteractive control to join the scheduled meeting;

determining that a start time for the scheduled meeting is within athreshold time;

in response to determining that the start time for the scheduled meetingis within the threshold time, updating, on the UI, the renderedscheduled meeting to include the interactive control to join thescheduled meeting, the interactive control having at least a selectableregion that is configured to indicate that the scheduled meeting is tobe joined;

receiving, via the interactive control, input data indicative of aselection of the interactive control; and

in response the input data, causing a collaboration application to jointhe scheduled meeting.

Example Clause K, the method of Example Clause J further comprising:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, updating the rendered scheduledmeeting to include a whiteboard icon configured to indicate that a newwhiteboard has been added that is associated with the scheduled meeting.

Example Clause L, the method of any one of Example Clauses I through K,further comprising:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, updating the rendered scheduledmeeting to include a chat icon configured to indicate that recent chatactivity is available that is associated with the scheduled meeting.

Example Clause M, the method of any one of Example Clauses I through L,further comprising updating the rendered scheduled meeting to include ashare icon configured to, when the share icon is selected, cause thescheduled meeting to be forwarded to selected participants.

Example Clause N, the method of any one of Example Clauses I through M,further comprising:

in response to the determining that the start time for the scheduledmeeting is within the threshold time, updating the rendered scheduledmeeting to include a recording icon configured to indicate that arecording is available for viewing that is associated with the scheduledmeeting.

Example Clause O, the method of any one of Example Clauses I through N,further comprising:

determining that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, updating, on the UI, the rendered scheduled meeting to removethe interactive control to join the scheduled meeting.

Example Clause P, the method of any one of Example Clauses I through O,further comprising:

in response to the determining that the scheduled meeting is no longeractive, updating the rendered scheduled meeting to include a recordingicon configured to indicate that a recording is available for viewingthat is associated with the scheduled meeting.

While Example Clauses J through P are described above with respect to amethod, it is understood in the context of this disclosure that thesubject matter of Example Clauses J through P can additionally oralternatively be implemented by a system or device.

Example Clause Q, a system, comprising:

means for rendering a representation of a calendar view on a userinterface (UI), the calendar view indicative of one or more calendardays, the calendar days comprising a time span including a plurality oftime slots;

means for rendering a representation of a scheduled meeting in at leastone of the time slots, wherein the scheduled meeting is rendered withoutan interactive control to join the scheduled meeting;

means for determining that a start time for the scheduled meeting meetsone or more criteria;

in response to determining that the start time for the scheduled meetingmeets the one or more criteria, means for updating, on the UI, therendering to include the interactive control to join the scheduledmeeting, the interactive control having at least a selectable regionthat is configured to indicate that the scheduled meeting is to bejoined;

means for receiving, via the interactive control, input data indicativeof an activation of the interactive control; and

in response the input data, means for causing a collaborationapplication to join the scheduled meeting.

Example Clause R, the system of Example Clause Q, further comprising:

in response to the determining that the start time for the scheduledmeeting meets the one or more criteria, means for updating the renderedscheduled meeting to visually indicate an elapsed time for the scheduledmeeting.

Example Clause S, the system of any of Example Clauses Q through R,further comprising:

in response to the determining that the start time for the scheduledmeeting meets the one or more criteria, means for updating the renderedscheduled meeting to visually indicate that the scheduled meeting iswithin the threshold time.

Example Clause T, the system of any one of Example Clauses Q through S,further comprising:

means for determining that the scheduled meeting is no longer active;and

in response to the determining that the scheduled meeting is no longeractive, means for updating, on the UI, the rendered scheduled meeting toremove the interactive control to join the scheduled meeting.

While Example Clauses Q through T are described above with respect to asystem, it is understood in the context of this disclosure that thesubject matter of Example Clauses Q through T can additionally oralternatively be implemented by a method or via a device.

The disclosure presented herein encompasses the subject matter set forthin the following example clauses.

Example Clause AA, a system comprising:

one or more data processing units; and

a computer-readable medium having encoded thereon computer-executableinstructions to cause the one or more data processing units to:

render a representation of a calendar view on a user interface (UI), thecalendar view indicative of one or more calendar days, the calendar dayscomprising a time span including a plurality of time slots;

render a representation of a scheduled meeting in at least one of thetime slots, wherein the scheduled meeting is rendered without aninteractive control to join the scheduled meeting;

determine that a start time for the scheduled meeting is within athreshold time; and

in response to determining that the start time for the scheduled meetingis within the threshold time, convert the representation of thescheduled meeting to a live meeting object within the calendar view.

Example Clause BB, the system of Example Clause AA wherein theinstructions further cause the one or more data processing units to:

update the live meeting object to include a control to join thescheduled meeting, the control having at least a selectable region thatis configured to indicate that the scheduled meeting is to be joined.

Example Clause CC, the system of any one of Example Clauses AA throughBB, wherein the instructions further cause the one or more dataprocessing units to:

in response to determining that the start time for the scheduled meetingis within the threshold time, update the live meeting object to visuallyindicate that the scheduled meeting is within the threshold time.

Example Clause DD, the system of any one of Example Clauses AA throughCC, wherein the instructions further cause the one or more dataprocessing units to:

determine that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, update the live meeting object to remove the interactive controlto join the scheduled meeting.

Example Clause EE, the system of any one of Example Clauses AA throughDD, wherein the instructions further cause the one or more dataprocessing units to:

determine that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, update the live meeting object to visually indicate that thescheduled meeting is no longer active.

Example Clause FF, the system of any one of Example Clauses AA throughEE, wherein the instructions further cause the one or more dataprocessing units to:

in response to determining that the start time for the scheduled meetingis within the threshold time, update the live meeting object to indicateone or more participants who have joined the scheduled meeting.

Example Clause GG, the system of any one of Example Clauses AA throughFF, wherein the instructions further cause the one or more dataprocessing units to:

in response to determining that the start time for the scheduled meetingis within the threshold time, update the live meeting object to render avideo image of the scheduled meeting.

Example Clause HH, the system of any one of Example Clauses AA throughGG, wherein the instructions further cause the one or more dataprocessing units to:

in response to determining that the start time for the scheduled meetingis within the threshold time, update the live meeting object to includea preview control configured to launch a preview of recent messagesassociated with the scheduled meeting.

Example Clause II, the system of any one of Example Clauses AA throughHH, wherein the instructions further cause the one or more dataprocessing units to:

receive input data indicative of a change in perspective of therepresentation; and

in response to the change in perspective, automatically reposition thezoom window to maintain the view of the portion of the representation.

While Example Clauses AA through II are described above with respect toa system, it is understood in the context of this disclosure that thesubject matter of Example Clauses AA through II can additionally oralternatively be implemented by a method or device.

Example Clause JJ, a method to be performed by a data processing system,the method comprising:

rendering a representation of a calendar view on a user interface (UI),the calendar view indicative of one or more calendar days, the calendardays comprising a time span including a plurality of time slots;

rendering a representation of a scheduled meeting in at least one of thetime slots;

determining that a start time for the scheduled meeting meets one ormore criteria;

in response to determining that the start time for the scheduled meetingmeets the one or more criteria, converting the representation of thescheduled meeting to a live meeting object within the calendar view,wherein the live meeting object includes a control to join the scheduledmeeting;

receiving, via the control, input data indicative of an activation ofthe control; and

in response the input data, causing a collaboration application to jointhe scheduled meeting.

Example Clause KK, the method of Example Clause JJ further comprising:

in response to determining that the start time for the scheduled meetingmeets the one or more criteria, updating the live meeting object toinclude a whiteboard icon configured to indicate that a new whiteboardhas been added that is associated with the scheduled meeting.

Example Clause LL, the method of any one of Example Clauses II throughKK, further comprising:

in response to determining that the start time for the scheduled meetingmeets one or more criteria, updating the live meeting object to includea chat icon configured to indicate that recent chat activity isavailable that is associated with the scheduled meeting.

Example Clause MM, the method of any one of Example Clauses II throughLL, further comprising updating the live meeting object to include ashare icon configured to, when selected, cause the scheduled meeting tobe forwarded to selected participants.

Example Clause NN, the method of any one of Example Clauses II throughMM, further comprising:

in response to determining that the start time for the scheduled meetingmeets the one or more criteria, updating the live meeting object toinclude a recording icon configured to indicate that a recording isavailable for viewing that is associated with the scheduled meeting.

Example Clause OO, the method of any one of Example Clauses II throughNN, further comprising:

determining that the scheduled meeting is no longer active; and

in response to the determining that the scheduled meeting is no longeractive, updating the live meeting object to remove the control to jointhe scheduled meeting.

Example Clause PP, the method of any one of Example Clauses II throughNN, further comprising:

in response to determining that the start time for the scheduled meetingmeets one or more criteria, updating the live meeting object to includea notes control configured to indicate that new notes have been addedthat are associated with the scheduled meeting.

While Example Clauses JJ through PP are described above with respect toa method, it is understood in the context of this disclosure that thesubject matter of Example Clauses JJ through PP can additionally oralternatively be implemented by a system or device.

Example Clause QQ, a system comprising:

means for rendering a representation of a calendar view on a userinterface (UI), the calendar view indicative of one or more calendardays, the calendar days comprising a time span including a plurality oftime slots;

means for rendering a representation of a scheduled meeting in at leastone of the time slots;

means for determining that a start time for the scheduled meeting iswithin a threshold time;

in response to determining that the start time for the scheduled meetingis within the threshold time, means for converting the representation ofthe scheduled meeting to a live meeting object within the calendar view,wherein the live meeting object includes a control to join the scheduledmeeting;

means for receiving, via the control, input data indicative of aselection of the control; and in response the input data, means forcausing a collaboration application to join the scheduled meeting.

Example Clause RR, the system of Example Clause QQ, further comprising:

in response to determining that the start time for the scheduled meetingis within the threshold time, means for updating the live meeting objectto visually indicate an elapsed time for the scheduled meeting.

Example Clause SS, the system of any one of Example Clauses QQ throughRR, further comprising:

in response to determining that the start time for the scheduled meetingis within the threshold time, means for updating the live meeting objectto visually indicate that the scheduled meeting is within the thresholdtime.

Example Clause TT, the system of any one of Example Clauses QQ throughSS, further comprising:

means for determining that the scheduled meeting is no longer active;and

in response to the determining that the scheduled meeting is no longeractive, means for updating the live meeting object to remove the controlto join the scheduled meeting.

While Example Clauses QQ through TT are described above with respect toa system, it is understood in the context of this disclosure that thesubject matter of Example Clauses QQ through TT can additionally oralternatively be implemented by a method or via a device.

The invention claimed is:
 1. A system comprising: one or more data processing units; and a computer-readable medium having encoded thereon computer-executable instructions to cause the one or more data processing units to: render a representation of a calendar view on a user interface (UI), the calendar view indicative of one or more calendar days, the calendar days comprising a time span including a plurality of sequential time slots; render, within the calendar view comprising the time span including the plurality of sequential time slots, a representation of a scheduled meeting in at least one of the sequential time slots, wherein the scheduled meeting is rendered without an icon or button operative to provide an interactive control to join the scheduled meeting; determine that a start time for the scheduled meeting is within a threshold time; and in response to determining that the start time for the scheduled meeting is within the threshold time, convert the representation of the scheduled meeting to a live meeting object and replace, within the calendar view, the representation of the scheduled meeting with the converted live meeting object, the live meeting object including an icon or button operative to provide an interactive control to join the scheduled meeting.
 2. The system of claim 1, wherein the instructions further cause the one or more data processing units to: update the live meeting object to include a control to join the scheduled meeting, the control having at least a selectable region that is configured to indicate that the scheduled meeting is to be joined.
 3. The system of claim 1, wherein the instructions further cause the one or more data processing units to: in response to determining that the start time for the scheduled meeting is within the threshold time, update the live meeting object to visually indicate that the scheduled meeting is within the threshold time.
 4. The system of claim 2, wherein the instructions further cause the one or more data processing units to: determine that the scheduled meeting is no longer active; and in response to the determining that the scheduled meeting is no longer active, update the live meeting object to remove the interactive control to join the scheduled meeting.
 5. The system of claim 3, wherein the instructions further cause the one or more data processing units to: determine that the scheduled meeting is no longer active; and in response to the determining that the scheduled meeting is no longer active, update the live meeting object to visually indicate that the scheduled meeting is no longer active.
 6. The system of claim 1, wherein the instructions further cause the one or more data processing units to: in response to determining that the start time for the scheduled meeting is within the threshold time, update the live meeting object to indicate one or more participants who have joined the scheduled meeting.
 7. The system of claim 1, wherein the instructions further cause the one or more data processing units to: in response to determining that the start time for the scheduled meeting is within the threshold time, update the live meeting object to render a video image of the scheduled meeting.
 8. The system of claim 1, wherein the instructions further cause the one or more data processing units to: in response to determining that the start time for the scheduled meeting is within the threshold time, update the live meeting object to include a preview control configured to launch a preview of recent messages associated with the scheduled meeting.
 9. The system of claim 1, wherein the instructions further cause the one or more data processing units to: in response to the determining that the start time for the scheduled meeting is within the threshold time, update the live meeting object to include a notes control configured to indicate that new notes have been added that are associated with the scheduled meeting.
 10. A method to be performed by a data processing system, the method comprising: rendering a representation of a calendar view on a user interface (UI), the calendar view indicative of one or more calendar days, the calendar days comprising a time span including a plurality of sequential time slots; rendering, within the calendar view comprising the time span including the plurality of sequential time slots, a representation of a scheduled meeting in at least one of the sequential time slots; determining that a start time for the scheduled meeting meets one or more criteria; in response to determining that the start time for the scheduled meeting meets the one or more criteria, converting the representation of the scheduled meeting to a live meeting object and replace, within the calendar view, the representation of the scheduled meeting with the converted live meeting object, wherein the live meeting object includes an icon or button operative to provide a control to join the scheduled meeting; receiving, via the control, input data indicative of an activation of the control; and in response to the input data, causing a collaboration application to join the scheduled meeting.
 11. The method of claim 10, further comprising: in response to determining that the start time for the scheduled meeting meets the one or more criteria, updating the live meeting object to include a whiteboard icon configured to indicate that a new whiteboard has been added that is associated with the scheduled meeting.
 12. The method of claim 10, further comprising: in response to determining that the start time for the scheduled meeting meets one or more criteria, updating the live meeting object to include a chat icon configured to indicate that recent chat activity is available that is associated with the scheduled meeting.
 13. The method of claim 10, further comprising updating the live meeting object to include a share icon configured to, when selected, cause the scheduled meeting to be forwarded to selected participants.
 14. The method of claim 10, further comprising: in response to determining that the start time for the scheduled meeting meets the one or more criteria, updating the live meeting object to include a recording icon configured to indicate that a recording is available for viewing that is associated with the scheduled meeting.
 15. The method of claim 10, further comprising: determining that the scheduled meeting is no longer active; and in response to the determining that the scheduled meeting is no longer active, updating the live meeting object to remove the control to join the scheduled meeting.
 16. The method of claim 15, further comprising: in response to determining that the start time for the scheduled meeting meets one or more criteria, updating the live meeting object to include a notes control configured to indicate that new notes have been added that are associated with the scheduled meeting.
 17. A system, comprising: means for rendering a representation of a calendar view on a user interface (UI), the calendar view indicative of one or more calendar days, the calendar days comprising a time span including a plurality of sequential time slots; means for rendering, within the calendar view comprising the time span including the plurality of sequential time slots, a representation of a scheduled meeting in at least one of the sequential time slots; means for determining that a start time for the scheduled meeting is within a threshold time; in response to determining that the start time for the scheduled meeting is within the threshold time, means for converting the representation of the scheduled meeting to a live meeting object and replace, within the calendar view, the representation of the scheduled meeting with the converted live meeting object, wherein the live meeting object includes an icon or button operative to provide a control to join the scheduled meeting; means for receiving, via the control, input data indicative of a selection of the control; and in response to the input data, means for causing a collaboration application to join the scheduled meeting.
 18. The system of claim 17, further comprising: in response to determining that the start time for the scheduled meeting is within the threshold time, means for updating the live meeting object to visually indicate an elapsed time for the scheduled meeting.
 19. The system of claim 17, further comprising: in response to determining that the start time for the scheduled meeting is within the threshold time, means for updating the live meeting object to visually indicate that the scheduled meeting is within the threshold time.
 20. The system of claim 17, further comprising: means for determining that the scheduled meeting is no longer active; and in response to the determining that the scheduled meeting is no longer active, means for updating the live meeting object to remove the control to join the scheduled meeting. 